什么是资源消耗型攻击
CC攻击(Distributed HTTP flood,分布式HTTP洪水攻击)
CC攻击使用代理服务器向受害服务器发送大量貌似合法的请求(通常为HTTP GET)。攻击者创造性地使用代理,利用广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名,这使追踪变得非常困难。
2004年,一位匿名为KiKi的中国黑客开发了一种用于发送HTTP请求的DDoS攻击工具以攻击名为“Collapsar”的NSFOCUS防火墙,因此该黑客工具被称为“Challenge Collapsar”(挑战黑洞,简称CC),这类攻击被称作“CC攻击”。[5]
僵尸网络攻击
僵尸网络是指大量被命令与控制(C&C)服务器所控制的互联网主机群。攻击者传播恶意软件并组成自己的僵尸网络。僵尸网络难于检测的原因是,僵尸主机只有在执行特定指令时才会与服务器进行通讯,使得它们隐蔽且不易察觉。僵尸网络根据网络通讯协议的不同分为IRC、HTTP或P2P类等。
应用程序级洪水攻击(Application level floods)
与前面叙说的攻击方式不同,应用程序级洪水攻击主要是针对应用软件层的,也就是高于OSI的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来破坏正常的网络服务。
资源耗尽攻击也被称为“DDoSTCPSYN攻击”,它利用TCP功能将僵尸程序伪装的TCPSYN请求发送给受害服务器,从而饱和服务处理器资源并阻止其有效地处理合法请求。它专门利用发送系统和接收系统间的三向信号交换来发送大量欺骗性的原IP地址TCP SYN数据包给受害系统。最终,大量TCP SYN攻击请求反复发送,导致受害系统内存和处理器资源耗尽,致使其无法处理任何合法用户的请求。
预防DDOS攻击的措施有以下这些:
反向代理CDN:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
采用高性能的网络设备:抗DDoS攻击首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。
尽量避免NAT的使用:无论是路由器还是硬件防护墙设备都要尽量避免采用网络地址转换NAT的使用,除了必须使用NAT,因为采用此技术会较大降低网络通信能力,原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间。
充足的网络带宽保证:网络带宽直接决定了能抗受攻击的能力,假若仅有10M带宽,无论采取何种措施都很难对抗现在的 SYNFlood攻击,当前至少要选择100M的共享带宽,1000M的带宽会更好,但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M。
升级主机服务器硬件:在有网络带宽保证的前提下,尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,要保障硬件性能高并且稳定,否则会付出高昂的性能代价。
把网站做成静态页面:大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦。
资源消耗型攻击是DDoS攻击的一种形式。
资源消耗型攻击主要分为三种攻击类型,其中包括直接攻击,反射和放大攻击,链路攻击。
直接攻击顾名思义主要通过的ICMP flooding和UDP flooding两种方式攻击目标主机,将目标主机带宽占满并耗尽服务器和网络设备的处理能力,达到拒绝服务的目的,此方存在效率低和容易暴露的弊端,故攻击者一般不会使用此方式。
反射攻击是指攻击者使用僵尸主机发送大量的数据包,数据包源地址为被攻击目标IP,而目的地址是作为反射器的服务器,路由器等设备。反射器收到数据包后将数据包发送给目标主机,此方式基于TCP三次握手,当服务器接收到客户端的SYN请求后,会对该请求进行ACK应答,利用ACK的应答来进行反射攻击。
放大攻击主要分为3种,第一种DNS放大攻击的原理是攻击者向DNS服务器发送小数据包,此时会向目标主机发射高达50倍以上的DNS查询结果数据包。第二种是NTP放大攻击原理是攻击者向NTP服务器发送大小不超过64字节,但是服务器会返回100个482字节的UDP相应数据包。第三种是SNMP放大攻击,攻击者首先会对网络进行扫描找到开放了SNMP协议的设备,之后攻击者会发送约为60字节的getbulk请求数据包,而请求响应数据能够达到1500字节以上,可以达到25倍以上的放大效果。
链路攻击与前三种攻击方式不同,前三种都为点到点的方式进行攻击,而链路攻击是针对骨干网的攻击,链路攻击典型的方法是Coremelt攻击,通过traceroute等将僵尸网络根据链路关系,分成两部分,然后控制两部分的主机进行通信并收发大量数据。